function binarySearch(arr, target) {
  let left = 0, right = arr.length - 1;
  while (left <= right) {  // 当查找区间非空时
    const mid = Math.floor((left + right) / 2);  // 计算中间位置
    if (arr[mid] === target) {  // 如果中间位置的元素就是目标元素，直接返回
      return mid;
    } else if (arr[mid] < target) {  // 如果中间位置的元素小于目标元素，将查找区间缩小为右半部分
      left = mid + 1;
    } else {  // 如果中间位置的元素大于目标元素，将查找区间缩小为左半部分
      right = mid - 1;
    }
  }
  return -1;  // 如果没有找到目标元素，返回-1
}

// 示例
const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
console.log(binarySearch(arr, 5));  // 4
console.log(binarySearch(arr, 10));  // -1
